package cn.tedu.spring.lifecycle;

import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;

/**
 * @author lhd
 * @date 2024/4/17
 * @apiNote
 */
public class TestLife {
    public static void main(String[] args) {

//        ApplicationContext context = new AnnotationConfigApplicationContext
//                ("cn.tedu.spring.lifecycle");
        //创建IoC容器 AnnotationConfigApplicationContext 便于close手动关闭
        AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext
                ("cn.tedu.spring.lifecycle");
        Life life = context.getBean(Life.class);
        //使用阶段
        System.out.println(
                "4.开发者使用阶段"
        );
        //关闭IoC容器 AnnotationConfigApplicationContext
        context.close();
        /**
         * 运行结果：
         * 1.调用无参构造进行实例化
         * 2.调用set方法进行属性赋值
         * 3.调用PostConstruct进行初始化
         * 4.开发者使用阶段
         * 5.执行生命周期的销毁方法
         */
    }
}
